package com.xing.algorithm.string;

public class FirstUniChar {
//    public static int firstUniqChar(String s) {
//        if(s == null || s.length() == 0) {
//            return -1;
//        }
//
//        char[] cs = s.toCharArray();
//        LinkedHashMap<Character,ArrayList<Integer>> maps = new LinkedHashMap<Character, ArrayList<Integer>>();
//        for(int i = 0; i < cs.length; i ++) {
//            if(!maps.containsKey(cs[i])) {
//                ArrayList<Integer> ints = new ArrayList<Integer>();
//                ints.add(i);
//                maps.put(cs[i], ints);
//            } else {
//                maps.get(cs[i]).add(i);
//            }
//        }
//
//        for(Map.Entry<Character, ArrayList<Integer>> entry : maps.entrySet()) {
//            if(entry.getValue().size() == 1) {
//                return entry.getValue().get(0);
//            }
//
//        }
//
//        return -1;
//    }

    public static int firstUniqChar(String s) {

        int freq[] = new int[26];

        for (int i = 0; i < s.length(); i++)
            freq[s.charAt(i) - 'a']++;

        for (int i = 0; i < s.length(); i++)
            if (freq[s.charAt(i) - 'a'] == 1)
                return i;
        return -1;
    }

    public static void main(String[] args) {
        String str = "loveleetcode";
        System.out.println(firstUniqChar(str));
    }
}
